package com.br.egaragens.controles;


import java.sql.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.stmt.PreparedQuery;
import com.j256.ormlite.stmt.QueryBuilder;
import com.br.egaragens.entidades.Veiculo;
import com.br.egaragens.helpers.DataBaseHelperPadrao;
import com.br.egaragens.interfaces.IEntidade;

import android.R.integer;
import android.content.Context;
import android.database.SQLException;

public class VeiculoController extends Controller<Veiculo, integer>{

	private List<Veiculo> lIenEntidades;
	private IEntidade veiculo;

	@SuppressWarnings("unchecked")
	public VeiculoController(Context context) {
		Class c = null;

		try {
			c = Class.forName("com.br.egaragens.helpers.DataBaseHelperPadrao");
			helper = OpenHelperManager.getHelper(context, c);
			//dao = helper.getDao(Veiculo.class);
			dao = ((DataBaseHelperPadrao) helper).getVeiculoDao();

		} catch (Exception e) {
			e.printStackTrace();
		}

	}


	public List<Veiculo> getPeloQrcodeStatus(String qrCode) {
		QueryBuilder<Veiculo, integer> queryBuilder =dao.queryBuilder();

		try {
			try {
				queryBuilder.where().eq("idQrCode", qrCode).and().eq("status", false);
				PreparedQuery<Veiculo> preparedQuery = queryBuilder.prepare();
				List<Veiculo> lista = dao.query(preparedQuery);

				return (List<Veiculo>) lista;


			} catch (java.sql.SQLException e) {
				e.printStackTrace();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	public List<Veiculo> getPeloStatusAberto() {
		QueryBuilder<Veiculo, integer> queryBuilder =dao.queryBuilder();
		
		try {
			try {
				queryBuilder.where().eq("statusEnvio", false);
				PreparedQuery<Veiculo> preparedQuery = queryBuilder.prepare();
				List<Veiculo> lista = dao.query(preparedQuery);
				
				return (List<Veiculo>) lista;
				
				
			} catch (java.sql.SQLException e) {
				e.printStackTrace();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return null;
		
	}
	public List<Veiculo> getPeloStatusAbertoLista() {
		QueryBuilder<Veiculo, integer> queryBuilder =dao.queryBuilder();
		
		try {
			try {
				queryBuilder.where().eq("status", false);
				PreparedQuery<Veiculo> preparedQuery = queryBuilder.prepare();
				List<Veiculo> lista = dao.query(preparedQuery);
				
				return (List<Veiculo>) lista;
				
				
			} catch (java.sql.SQLException e) {
				e.printStackTrace();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return null;
		
	}

	public List<Veiculo> getPeloStatusAbertoFechamento() {
		QueryBuilder<Veiculo, integer> queryBuilder =dao.queryBuilder();
		
		try {
			try {
				queryBuilder.where().eq("statusEnvioPagamento", false).and().isNotNull("dtHoraSaida");
				PreparedQuery<Veiculo> preparedQuery = queryBuilder.prepare();
				List<Veiculo> lista = dao.query(preparedQuery);
				
				return (List<Veiculo>) lista;
				
				
			} catch (java.sql.SQLException e) {
				e.printStackTrace();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		return null;
		
	}


}
